package design_pattern.decorator.test4;

/**
 * Created by WeiDingKuo on 2017/10/25 15:08
 * <p>
 * 装饰者和被装饰者都只有一个的情况
 * 这样装饰其实已经没有太大的意义，完全可以通过直接继承增强来实现相同的功能
 * <p>
 * 实际上装饰者模式要解决的问题恰恰是当有多种方法需要增强，并且增强的次数和顺序不同时，
 * 如果使用继承增强会产生大量的子类，而子类的代码是类似和冗余的，代码难以阅读和维护。
 * <p>
 * 所以这种装饰模式反而没有继承增强的方式来的直接简单，个人觉得没有必要这么写。
 */
public class Test {
    public static void main(String[] args) {
        System.out.println("装饰模式：没达到实际作用");
        new Decorator1(new ComponentImpl()).dosomething();
        System.out.println("直接继承增强");
        new Decorator2().dosomething();
    }
}
